package com.example.myweather.ViewModel

import androidx.lifecycle.ViewModel
import com.example.myweather.Repository.CityRepository
import com.example.myweather.Server.ApiClient
import com.example.myweather.Server.ApiServer
/*
 * CityViewModel 类是一个 ViewModel，用于管理与城市数据相关的业务逻辑。
 * 该类通过调用 CityRepository 中的方法来获取城市数据列表。
 *
 * 参数：
 * - repository: CityRepository 对象，用于与 API 服务器进行交互
 */
class CityViewModel(val repository: CityRepository):ViewModel() {
    /*
     * 通过构造函数来创建 CityViewModel 的实例。
     * 该构造函数使用默认的 CityRepository 实例，该实例基于一个已经创建好的 ApiClient 实例。
     */
    constructor():this(CityRepository(ApiClient().getClient().create(ApiServer::class.java)))
         /*
         * 加载城市数据列表的方法。
         * 参数：
         * - q: 搜索关键字，用于筛选城市列表
         * - limit: 返回结果的最大数量限制
         * 返回：调用 CityRepository 中的 getCities 方法，并传递相应的参数
         */
    fun loadCity(q:String,limit:Int)=repository.getCities(q,limit)
}